Parse module information from Go binaries .buildinfo#2193
Merged
ddelnano merged 4 commits intopixie-io:mainfrom May 29, 2025
Merged
Parse module information from Go binaries .buildinfo#2193ddelnano merged 4 commits intopixie-io:mainfrom
ddelnano merged 4 commits intopixie-io:mainfrom
Conversation
9f0dc1c to
a3d7112
Compare
Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
a3d7112 to
3ac1f1e
Compare
Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
…ic case works Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
oazizi000
approved these changes
May 29, 2025
Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
ddelnano
added a commit
to k8sstormcenter/pixie
that referenced
this pull request
Feb 25, 2026
Summary: Parse module information from Go binaries .buildinfo Our current Go uprobe implementation relies on parsing DWARF information. This is memory intensive and is not ideal if end users want to keep the PEM's memory usage low (results in 100-150MB memory spikes). Go embeds dependency versions within the `.buildinfo` ELF section, which provides an opportunity to identify memory offsets for eBPF programs without DWARF. This is how solutions like [Open Telemetry's automatic go instrumentation](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/cb01aca4e72b8542401faf2fcf1ceba4248b4ba5/docs/how-it-works.md#instrumentation-stability) work. By providing access to this dependency information, we can provide a lighter weight uprobe implementation for Go applications. Relevant Issues: N/A Type of change: /kind feature Test Plan: New tests verify added functionality --------- Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
ddelnano
added a commit
to k8sstormcenter/pixie
that referenced
this pull request
Feb 25, 2026
Summary: Parse module information from Go binaries .buildinfo Our current Go uprobe implementation relies on parsing DWARF information. This is memory intensive and is not ideal if end users want to keep the PEM's memory usage low (results in 100-150MB memory spikes). Go embeds dependency versions within the `.buildinfo` ELF section, which provides an opportunity to identify memory offsets for eBPF programs without DWARF. This is how solutions like [Open Telemetry's automatic go instrumentation](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/cb01aca4e72b8542401faf2fcf1ceba4248b4ba5/docs/how-it-works.md#instrumentation-stability) work. By providing access to this dependency information, we can provide a lighter weight uprobe implementation for Go applications. Relevant Issues: N/A Type of change: /kind feature Test Plan: New tests verify added functionality --------- Signed-off-by: Dom Del Nano <ddelnano@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary: Parse module information from Go binaries .buildinfo
Our current Go uprobe implementation relies on parsing DWARF information. This is memory intensive and is not ideal if end users want to keep the PEM's memory usage low (results in 100-150MB memory spikes).
Go embeds dependency versions within the
.buildinfoELF section, which provides an opportunity to identify memory offsets for eBPF programs without DWARF. This is how solutions like Open Telemetry's automatic go instrumentation work. By providing access to this dependency information, we can provide a lighter weight uprobe implementation for Go applications.Relevant Issues: N/A
Type of change: /kind feature
Test Plan: New tests verify added functionality